package com.newtouch.bxzs.business.train.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.newtouch.bxzs.business.train.model.bo.ExaminationPaperSetExaminationQuestionListBO;
import com.newtouch.bxzs.business.train.model.bo.ExaminationQuestionListBO;
import com.newtouch.bxzs.business.train.model.bo.ExaminationQuestionOptionListBO;
import com.newtouch.bxzs.business.train.model.bo.QuestionBankSetExaminationQuestionListBO;
import com.newtouch.bxzs.business.train.model.vo.ExaminationPaperSetExaminationQuestionListVO;
import com.newtouch.bxzs.business.train.model.vo.ExaminationQuestionListVO;
import com.newtouch.bxzs.business.train.model.vo.ExaminationQuestionOptionListVO;
import com.newtouch.bxzs.business.train.model.vo.ModifyExaminationQuestionInfoVO;
import com.newtouch.bxzs.business.train.model.vo.ModifyExaminationQuestionOptionVO;
import com.newtouch.bxzs.business.train.model.vo.QuestionBankSetExaminationQuestionListVO;

/**
 * 试题相关处理
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/2/5</td>
 * <td>dongjinlin</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author dongjinlin
 * @version 1.0.0
 * @since 1.0.0
 */
public interface ExaminationQuestionService {

	/**
	 * 查询题库设置试题列表
	 * 
	 * @param examinationQuestionListVO
	 * @return
	 */
	IPage<QuestionBankSetExaminationQuestionListBO> getQuestionBankSetExaminationQuestionList(
			QuestionBankSetExaminationQuestionListVO questionBankSetExaminationQuestionListVO);

	/**
	 * 查询试卷设置试题列表
	 * 
	 * @param examinationQuestionListVO
	 * @return
	 */
	IPage<ExaminationPaperSetExaminationQuestionListBO> getExaminationPaperSetExaminationQuestionList(
			ExaminationPaperSetExaminationQuestionListVO examinationPaperSetExaminationQuestionListVO);
	
	/**
	 * 维护试题信息-查询试题列表
	 * 
	 * @param examinationQuestionListVO
	 * @return
	 */
	IPage<ExaminationQuestionListBO> getExaminationQuestionList(ExaminationQuestionListVO examinationQuestionListVO);

	/**
	 * 创建、修改试题基本信息
	 * 
	 * @param examinationPaperBaseInfoVO
	 * @return
	 */
	String modifyExaminationQuestionInfo(ModifyExaminationQuestionInfoVO examinationQuestionInfoVO);

	/**
	 * 删除试题
	 * 
	 * @param examinationQuestionIds
	 *            试卷id集合
	 */
	Integer deleteExaminationQuestion(List<String> examinationQuestionIds);

	
	/**
	 * 获取该试题的试题选项列表
	 * @param examinationQuestionOptionListVO
	 * @return
	 */
	List<ExaminationQuestionOptionListBO> getExaminationQuestionOptionList(ExaminationQuestionOptionListVO examinationQuestionOptionListVO);
	
	/**
	 * 创建试题选项
	 * 
	 * @param examinationPaperBaseInfoVO
	 * @return
	 */
	String modifyExaminationQuestionOption(ModifyExaminationQuestionOptionVO modifyExaminationQuestionOptionVO);

	/**
	 * 删除试题选项
	 * @param examinationQuestionOptionIds
	 */
	Integer deleteExaminationQuestionOptions(List<String> examinationQuestionOptionIds);

	
	/**
	 * 更新众多试题的题库id
	 * @param questionBankId
	 * @param examinationQuestionIds
	 */
	void updateExaminationQuestionSetQuestionBankId(String questionBankId,List<String> examinationQuestionIds);
	

    /**
     * 试题设置中设置试题选项
     * @param examinationQuestionId
     * @param ModifyExaminationQuestionOptionVOList
     */
    void updateExaminationQuestionOptionInSetExaminationQuestion(String examinationQuestionId,
        List<ModifyExaminationQuestionOptionVO> ModifyExaminationQuestionOptionVOList);
}
